// 对axios进行二次封装 给他

import axios from "axios"
import 'nprogress/nprogress.css'
import NProgress from "nprogress";


// 创建axios实例对象
const mockAjax = axios.create({
  // 因为是mock服务器请求
  baseURL: '/mock',
  timeout: 1000, // 设置超时时间
});


// 设置请求拦截器
// 添加请求拦截器 发送请求之前要执行的
mockAjax.interceptors.request.use((request) => {
  // 在发送请求之前做些什么
  NProgress.start()
  return request;
}, function (error) {
  // 对请求错误做些什么
  NProgress.start()
  return Promise.reject(error);
});

// 添加响应拦截器
mockAjax.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  NProgress.done()
  // console.log(response.data);
  return response.data;
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  NProgress.done()
  return Promise.reject(error);
});



// 5. 导出对象
export default mockAjax